:root,
:host {
  --van-swipe-indicator-size: 6px;
  --van-swipe-indicator-margin: var(--van-padding-sm);
  --van-swipe-indicator-active-opacity: 1;
  --van-swipe-indicator-inactive-opacity: 0.3;
  --van-swipe-indicator-active-background: var(--van-primary-color);
  --van-swipe-indicator-inactive-background: var(--van-border-color);
}

.van-swipe {
  position: relative;
  overflow: hidden;
  // https://github.com/vant-ui/vant/issues/9931
  transform: translateZ(0);
  cursor: grab;
  user-select: none;

  &__track {
    display: flex;
    height: 100%;
    // improve transition perf
    transition-property: transform;

    &--vertical {
      flex-direction: column;
    }
  }

  &__indicators {
    position: absolute;
    bottom: var(--van-swipe-indicator-margin);
    left: 50%;
    display: flex;
    transform: translateX(-50%);

    &--vertical {
      top: 50%;
      bottom: auto;
      left: var(--van-swipe-indicator-margin);
      flex-direction: column;
      transform: translateY(-50%);

      .van-swipe__indicator:not(:last-child) {
        margin-bottom: var(--van-swipe-indicator-size);
      }
    }
  }

  &__indicator {
    width: var(--van-swipe-indicator-size);
    height: var(--van-swipe-indicator-size);
    background-color: var(--van-swipe-indicator-inactive-background);
    border-radius: 100%;
    opacity: var(--van-swipe-indicator-inactive-opacity);
    transition:
      opacity var(--van-duration-fast),
      background-color var(--van-duration-fast);

    &:not(:last-child) {
      margin-right: var(--van-swipe-indicator-size);
    }

    &--active {
      background-color: var(--van-swipe-indicator-active-background);
      opacity: var(--van-swipe-indicator-active-opacity);
    }
  }
}
